// import com.alibaba.druid.DbType_ptr;
// import com.alibaba.druid.sql.ast.SQLExpr_ptr;
// import com.alibaba.druid.sql.ast.SQLName_ptr;
// import com.alibaba.druid.sql.ast.SQLObject;
// import com.alibaba.druid.sql.ast.SQLReplaceable;
// import com.alibaba.druid.sql.ast.SQLStatementImpl;
// import com.alibaba.druid.sql.visitor.SQLASTVisitor;

// import java.util.Collections;
// import java.util.List;
#pragma once
#include "../SQLStatementImpl.h"
#include "../SQLReplaceable.h"

class SQLBeginStatement 
: virtual public SQLStatementImpl,
 virtual public SQLReplaceable
{
public:
  // tidb
  SQLName_ptr tidbTxnMode;

  SQLBeginStatement();

  SQLBeginStatement(DbType_ptr dbType);
  SHAREDOBJECT(SQLBeginStatement);

  SQLName_ptr getTidbTxnMode();

  void setTidbTxnMode(SQLName_ptr x);

  // @Override
  void accept0(SQLASTVisitor_ptr visitor);

  // @Override
  BOOL_ptr replace(SQLExpr_ptr expr, SQLExpr_ptr target);

  // @Override
  SQLObject_list_ptr getChildren();
};
